home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 2
/
United Public Domain Gold 2.iso
/
utilities
/
pu004b.dms
/
pu004b.adf
/
Doc
/
UndefinedOpcodes.doc
< prev
next >
Wrap
Text File
|
1993-10-19
|
3KB
|
89 lines
UNDEFINED OPCODES
The 6510 microprocessor has 105 undefined opcodes. To fully emulate the
6510 microprocessor, A64 also emulates these opcodes. There is no official
documentation on these opcodes and the limited amount of information that
does exist, is very inconsistent. We compared all known sources of
information and did rigorous testing. We found that most of the undefined
opcodes proved to act consistently. However, there are some, that either
behaved differently from what others have found, or the results were so
unpredictable, that emulation proved to be very difficult. These "problem"
opcodes are listed with an * by their numbers in the table below. If anyone
has information that conflicts with what we have found, or a C64 program that
is not working as a direct result of improper emulation, we would greatly
appreciate hearing about it.
OPCODE ABS ABS,X ABS,Y ZERO ZERO,X ZERO,Y (IND,X) (IND),Y IMMED
-----------------------------------------------------------------------------
ASO 0F 1F 1B 07 17 03 13
RLA 2F 3F 3B 27 37 23 33
LSE 4F 5F 5B 47 57 43 53
RRA 6F 7F 7B 67 77 63 73
AXS 8F* 9F* 87* 97* 83* 93*
LAX AF BF A7 B7 A3 B3 AB
DCM CF DF DB C7 D7 C3 D3
INS EF FF FB E7 F7 E3 F3
ANC (identical to 2B) 0B
ANC (identical to 0B) 2B
ALR 4B
ARR 6B*
XMA 8B*
XAA 9B*
YAS 9C*
XAS 9E*
LSA BB*
SAX CB
SBC (identical to E9) EB
IMPLIED INSTRUCTIONS
--------------------
CRP 02, 12, 22, 32, 42, 52, 62, 72, 92, B2, D2, F2
NOP 1A, 3A, 5A, 7A, DA, FA
SKB 04, 14, 34, 44, 54, 64, 74, 80, 82, 89, C2, D4, E2, F4
SKW 0C, 1C, 3C, 5C, 7C, DC, FC
DEFINITIONS
-----------
ASO: ASL then ORA result with A
RLA: ROL then AND result with A
LSE: LSR then EOR result with A
RRA: ROR then ADC result with A
AXS: Store A AND X
LAX: LDA and LDX with same data
DCM: DEC memory then CMP result with A
INS: INC memory then SBC result from A
ANC: AND A with #xx, C = bit 7 of result
ALR: AND A with #xx then LSR result
ARR: AND A with #xx, C = bit 7 of result, ROR using C before AND
XMA: A = X AND #$xx
XAA: SP = A AND X, M = SP AND #$01
YAS: Y AND M, STY
XAS: X AND M, STX
LSA: LDA data, TAX, TXS
SAX: X = X AND A then sub #xx from X
SBC: Identical to opcode E9 (normal SBC #)
CRP: Crash Processor
NOP: No Operation
SKB: Skip Byte (Branch +1)
SKW: Skip Word (Branch +2)
OTHER SOURCES OF INFORMATION
----------------------------
The Transactor, Volume 6, Issue 03
Hidden Op-Codes, by Jim McLaughlin
The Transactor, Volume 6, Issue 05
6510 Opcodes, by Raymond Quirling
The Undocumented 6500 Series Instructions: A Summary, by Noel Nyman
Programming the Commodore 64, The Definitive Guide, by Raeto Collin West
64 Intern, Data Becker
64'er, March 1985